<?php

namespace app\admin\controller;

use app\common\controller\Backend;

/**
 * 原料调配
 *
 * @icon fa fa-circle-o
 */
class ClothmakingRaw extends Backend
{

    /**
     * ClothmakingRaw模型对象
     * @var \app\admin\model\ClothmakingRaw
     */
    protected $model = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->model = new \app\admin\model\ClothmakingRaw;

    }

    /**
     * 获取原料列表（返回 id 和 name）
     * 
     * @return \think\Response
     */
    public function getRawInfo()
    {
        try {
            // 设置过滤方法
            $this->request->filter(['strip_tags', 'trim']);

            // 获取查询参数
            $search = $this->request->request("search");
            $searchKey = $this->request->request("searchKey");
            $keyValue = $this->request->request("keyValue");

            // 构建查询
            $query = $this->model->field('id, name');

            // 如果有searchKey和keyValue，按照这个查询
            if ($searchKey && $keyValue) {
                $query->where($searchKey, '=', $keyValue);
                error_log('ClothmakingRaw getRawInfo - 使用searchKey查询: ' . $searchKey . ' = ' . $keyValue);
            }
            // 否则使用原来的search参数
            elseif ($search) {
                $query->where('name', 'like', "%{$search}%");
                error_log('ClothmakingRaw getRawInfo - 使用search查询: ' . $search);
            }

            // 查询数据（只返回 id 和 name 字段）
            $list = $query->order('id', 'desc')->select();

            // 记录查询结果
            error_log('ClothmakingRaw getRawInfo - 查询结果数量: ' . count($list));

            // 返回 JSON 数据
            $result = [
                "total" => count($list),
                "rows" => $list,
            ];

            return json($result);
        } catch (\Exception $e) {
            // 记录错误日志
            error_log('ClothmakingRaw getRawInfo error: ' . $e->getMessage());
            error_log('ClothmakingRaw getRawInfo trace: ' . $e->getTraceAsString());

            // 返回错误信息
            return json([
                "total" => 0,
                "rows" => [],
                "error" => $e->getMessage()
            ]);
        }
    }

    /**
     * 测试方法 - 获取所有原料
     * 
     * @return \think\Response
     */
    public function testGetAll()
    {
        try {
            $list = $this->model->field('id, name')->select();
            return json([
                "total" => count($list),
                "rows" => $list,
            ]);
        } catch (\Exception $e) {
            return json([
                "error" => $e->getMessage(),
                "trace" => $e->getTraceAsString()
            ]);
        }
    }

    /**
     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
     */


}
